package com.banesco.precargadepositos.interfaz.componentes;

import net.rim.device.api.ui.Graphics;
import net.rim.device.api.ui.Manager;
import net.rim.device.api.ui.component.EditField;
import net.rim.device.api.ui.container.VerticalFieldManager;

/**
 * Control personalizado para mostrar los mensajes de error
 * @author cruzga
 *
 */
public class MensajeError extends VerticalFieldManager {
	
	/**
	 * ancho del textbox
	 */
	private int managerWidth;
	
	
	/**
	 * Alto del textbox
	 */
	private int managerHeight;
	
	
	/**
	 * Textbox
	 */
	private EditField editField;
	 
	
	/**
	 * Constructor de la clase
	 * @param width ancho del mensaje
	 * @param height alto del mensaje
	 */
	public MensajeError(int width, int height) {
		
	    super(Manager.NO_VERTICAL_SCROLL);
	    managerWidth = width;
	    managerHeight = height;
	    
	    VerticalFieldManager vfm = new VerticalFieldManager(Manager.VERTICAL_SCROLL);
	    editField = new EditField(){
	    	public void paint(Graphics g) {
	    		getManager().invalidate();
	    		g.setBackgroundColor(0x013469);
	    		g.setColor(0x013469);
	    		super.paint(g);
	    	}
	  };
	  editField.setEditable(false);
	  
	  vfm.add(editField);
	  add(vfm);
	}
	  
	
	/**
	 * Metodo que se encarga de pintar el componente
	 */
	public void paint(Graphics g) {

        super.paint(g);
        g.drawRoundRect(0, 0, getWidth(), getHeight(), 15, 15); 
	}
	
	
	/**
	 * Metodo que pinta el componente interior
	 */
	public void sublayout(int width, int height) {
	  if (managerWidth == 0) {
	    managerWidth = width;
	  }
	  if (managerHeight == 0) {
	    managerHeight = height;
	  }
	  super.sublayout(managerWidth, managerHeight);
	  setExtent(managerWidth,managerHeight);
	}
	
	
	/**
	 * Metodo que fija si es editable el textbox
	 */
	public void setEditable(boolean editable){
		editField.setEditable(editable);
	}
	
	
	/**
	 * Metodo que extra el texto
	 * @return
	 */
	public String getText() {
		return editField.getText();
	}
	
	
	/**
	 * Metodo que setea el texto
	 * @param text
	 */
	public void setText(String text) {
		editField.setText(text);
	}
}
